package com.addbrick.websocket.service;

import com.addbrick.websocket.pojo.vo.OnlineUserVO;
import com.addbrick.websocket.pojo.vo.SendMsgVO;

import java.util.Map;

/**
 * websocket 监听类(连接，断点，消息发送等)
 * <p>
 * /websocket/{userId}/{username}   =  /websocket/用户Id/用户名 来连接websocket，该参数会带到每一个监听方法中
 * </P>
 *  @author shiliuyinzhen
 */
public interface WebsocketService {

    /**
     * 发送消息
     * @param sendMsgVO
     */
    void send(SendMsgVO sendMsgVO);

    /**
     * 获取当前在线列表
     * @return 用户map列表, ket = 用户id
     */
    Map<Object, OnlineUserVO> getOnlineUsers();

    /**
     * 获取在线人数
     * @return int
     */
    Integer getOnlineCount();


    /**
     * 在线
     * 判断指定用户是否在线
     * @return true 在线 / false 不在线
     * @param userId 用户id
     */
    boolean isOnline(String userId);

}


